/* eslint-disable indent */
'use strict'

const { unique } = require('../extend/helper')

/**
 * 游戏信息表
 */

module.exports = app => {
    const { TEXT, STRING, INTEGER, DATE, JSON } = app.Sequelize

    const GameInfo = app.model.define('game_info', {
        id: {
            type: INTEGER,
            primaryKey: true,
            autoIncrement: true
        },
        m_bid: {
            type: INTEGER,
            allowNull: false,
            comment: '会员绑定ID'
        },
        pid: {
            type: INTEGER,
            allowNull: false,
            comment: '门店ID'
        },
        client_name: {
            type: STRING(50),
            allowNull: true,
            comment: '客户端名称'
        },
        games: {
            type: JSON,
            allowNull: true,
            comment: '游戏信息'
        }
    }, {
        // 添加索引
        indexes: [
            // {
            //     name: 'idx_mid_pid',
            //     unique: true,
            //     fields: ['mid', 'pid']
            // }
        ]
    })

    // 建立关联关系
    GameInfo.associate = async () => {
        GameInfo.belongsTo(app.model.Place, {
            onDelete: 'RESTRICT',
            onUpdate: 'CASCADE',
            foreignKey: 'pid', // 源模型中的外键信息
            // as: 'place', // 添加到源模型中的目标模型别名
            targetKey: 'id' // 目标模型中的关联字段
        })
        GameInfo.belongsTo(app.model.Member, {
            onDelete: 'RESTRICT',
            onUpdate: 'CASCADE',
            foreignKey: 'm_bid', // 源模型中的外键信息
            // as: 'member', // 添加到源模型中的目标模型别名
            targetKey: 'id' // 目标模型中的关联字段
        })
    }


    return GameInfo
}
